package com.cs.beneficios.web.action;
import com.cs.beneficios.business.entity.AtributosDAO;
import com.cs.beneficios.business.entity.BeneficiarioDAO;
import com.cs.beneficios.business.entity.BeneficioDAO;
import com.cs.beneficios.business.entity.InterfazMELDAO;
import com.cs.beneficios.business.entity.RenovarDAO;
import com.cs.beneficios.business.entity.SedeDAO;
import com.cs.beneficios.business.entity.SubProgramaDAO;
import com.cs.beneficios.business.model.AtributoVO;
import com.cs.beneficios.business.model.BeneficiarioVO;
import com.cs.beneficios.business.model.InterfazMELVO;
import com.cs.beneficios.business.model.RenovarVO;
import com.cs.beneficios.business.model.SubProgramaVO;
import com.cs.beneficios.common.ConnectionFactory;
import com.cs.paoyer.administration.business.model.UserVO;

import java.io.IOException;

import java.sql.ResultSet;
import java.sql.SQLException;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class IngresoDatosRenovarAction extends Action 
{
  /**
   * This is the main action called from the Struts framework.
   * @param mapping The ActionMapping used to select this instance.
   * @param form The optional ActionForm bean for this request.
   * @param request The HTTP Request we are processing.
   * @param response The HTTP Response we are processing.
   * @return 
   * @throws java.io.IOException
   * @throws javax.servlet.ServletException
   */
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
    //ConnectionFactory cf = new ConnectionFactory("beneficios","beneficios");
	ConnectionFactory cf = new ConnectionFactory();
    SubProgramaVO codigosub = new SubProgramaVO();
    SubProgramaDAO sub = new SubProgramaDAO(cf);
    
    String strCodigoSubpro = request.getParameter("codBeneficio");
    codigosub.setCode(new Long(strCodigoSubpro));
    
    //Proceso para la auditoria
     String terminalAddress = request.getRemoteAddr();
     String strTerminal = ("WEB="+terminalAddress);
     Calendar c = Calendar.getInstance(); 
     SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");   
    //Fin del proceso 
    
    HttpSession session = request.getSession();
    session.setAttribute("CodigoSubpro",strCodigoSubpro);
    session.removeAttribute("renovacion");
    session.removeAttribute("ListaAtributos");
    session.removeAttribute("DateBirth");
    session.setAttribute("renovacion","renovar");
    BeneficiarioVO beneVO = new BeneficiarioVO();
    List coPropBeneficiario =  (List)session.getAttribute("beneSelected");
    Long CodeSubPro = new Long(strCodigoSubpro);
    List lAtributos = new LinkedList();
    String strValidoGF = "No";
    String Respuesta="No";
    //Proceso para convertir los atributos que no tienen valores en la lista
    try{
     AtributosDAO atriDAO = new AtributosDAO(cf);
     int conversion = atriDAO.getAtributosVallista(strCodigoSubpro);
     cf.closeConnection(atriDAO.getConn());
   }catch(SQLException e){
	System.err.println("/******** TDSUB - cwsub");
	e.printStackTrace();
	System.err.println("TDSSPE - cwsub ********/");
   }
    //Fin del proceso
    //proceso para identificar si el beneficiario tiene grupo familiar
    beneVO =  (BeneficiarioVO)coPropBeneficiario.get(0);
    Object obgrupo = (Object)beneVO.getGrupoFamiliarCode();
    
    BeneficiarioDAO benefDAO = null; 
    //Proceso para identificar si el beneficio es para un grupo familiar
    try
    {
      benefDAO = new BeneficiarioDAO(cf);
      strValidoGF = benefDAO.getSubProGrupoFam(CodeSubPro);
      cf.closeConnection(benefDAO.getConn());
    }catch(SQLException e)
    {
		System.err.println("/******** TDSUB - cwsub");
		e.printStackTrace();
		System.err.println("TDSSPE - cwsub ********/");
    }
    //Fin del Proceso
    if(strValidoGF.equals("Si"))
    {
      if(obgrupo!=null)
      {
        
        try
        {
          benefDAO = new BeneficiarioDAO(cf);
          List coGrupoFami = (List)benefDAO.getGrupoFamiliar(beneVO);
          cf.closeConnection(benefDAO.getConn());
          int tamagf = coGrupoFami.size();
          for(int k=0;k<tamagf;k++)
          {
            if(Respuesta.equals("No"))
            {
              BeneficiarioVO bene1VO = new BeneficiarioVO();
              bene1VO = (BeneficiarioVO)coGrupoFami.get(k);
              Long codebeneficiario = bene1VO.getCode();
              
              Respuesta = benefDAO.getBeneficiosGrupoFam(codebeneficiario,CodeSubPro);
            }
          }
        }catch(SQLException e){
			System.err.println("/******** TDSUB - cwsub");
			e.printStackTrace();
			System.err.println("TDSSPE - cwsub ********/");
        }
      }
    }
    //fin del proceso
    
    if(Respuesta.equals("No"))
    {
      UserVO user = (UserVO)session.getAttribute("userInfo");
      String strCodigoUsuario = user.getCode().toString();
      
      Collection atributos=null;
      Collection Csedes = null;
      
      AtributosDAO objAtributoDAO;
      AtributoVO objAtributoVO = new AtributoVO();
      
      SedeDAO objSedeDAO;
      String strCodigoBeneficiario = request.getParameter("code");
      session.setAttribute("beneficiario",strCodigoBeneficiario);
      try
      {
      
          List lNom = (List)sub.findSubProgramaByCriterea(codigosub,user.getCode(), user.getUserGroupName(),user.getCodeArea());
          cf.closeConnection(sub.getConn());
          
          codigosub = (SubProgramaVO)lNom.get(0);
          String strNombre = codigosub.getNombre();
          session.setAttribute("NombreSub",strNombre);
        
          objAtributoDAO = new AtributosDAO(cf);
          atributos = objAtributoDAO.GetAtributos(strCodigoSubpro,"A",0);
          cf.closeConnection(objAtributoDAO.getConn());
          
          int tam = atributos.size();
          String strTamano=String.valueOf(tam);
          
          session.setAttribute("tamanoLista",strTamano);
          session.setAttribute("ListaAtributos",atributos);
          
          objSedeDAO = new SedeDAO(cf);
          Csedes = objSedeDAO.GetTotalSedebyUser(user.getCode(),new Long(strCodigoSubpro),user.getUserGroupName(),user.getCodeArea());
          cf.closeConnection(objSedeDAO.getConn());
          if((Object)Csedes != null)
          {
            if(Csedes.size()>0)
              session.setAttribute("ListaSede",Csedes);  
          }
          
          //Carlos interface Sisben
      
          //strCodigoBeneficiario
          //strCodigoSubpro
          
          
          try
          {
            SubProgramaVO subproVO = new SubProgramaVO();
            subproVO.setCode(new Long(strCodigoSubpro));
            SubProgramaDAO subproDAO = new SubProgramaDAO(cf);
            List subpro = (List)subproDAO.findSubProgramaByCriterea(subproVO,user.getCode(), user.getUserGroupName(),user.getCodeArea());
            if(subpro != null && subpro.size()>0)
            {
              subproVO = (SubProgramaVO)subpro.get(0);
              if(subproVO.getValidarSisben().equals("S"))
              {
                  //Buscando el beneficiario en la bd del sisben
                beneVO = new BeneficiarioVO();
                beneVO.setCode(new Long(strCodigoBeneficiario));
                BeneficiarioDAO beneDAO;
                try
                {
                  beneDAO  = new BeneficiarioDAO(cf);
                  List beneficiario = (List)beneDAO.findBeneficiarioByCriterea(beneVO,"");
                  if(beneficiario != null && beneficiario.size()>0)
                  {
                    beneVO = (BeneficiarioVO)beneficiario.get(0);
                    BeneficiarioVO beneSisbenVO = new BeneficiarioVO();
                    //empezando a buscar el beneficiario en sisben por todos los criterios
                    beneSisbenVO.setTipoDocumento(beneVO.getTipoDocumento());
                    beneSisbenVO.setNumeroDocumento(beneVO.getNumeroDocumento());
                    beneSisbenVO.setNombre1(beneVO.getNombre1());
                    beneSisbenVO.setNombre2(beneVO.getNombre2());
                    beneSisbenVO.setPrimerApellido(beneVO.getPrimerApellido());
                    beneSisbenVO.setSegundoApellido(beneVO.getSegundoApellido());
                    beneSisbenVO.setFechaNacimiento(beneVO.getFechaNacimiento());
                    List beneficiarioSisben = (List)beneDAO.findBeneficiarioSisben(beneSisbenVO);
                    boolean encontro = false;
                    if(beneficiarioSisben != null && beneficiarioSisben.size()>0)
                    {
                      encontro = true;
                    }else
                    {
                      beneSisbenVO =  new BeneficiarioVO();
                      beneSisbenVO.setNombre1(beneVO.getNombre1());
                      beneSisbenVO.setNombre2(beneVO.getNombre2());
                      beneSisbenVO.setPrimerApellido(beneVO.getPrimerApellido());
                      beneSisbenVO.setSegundoApellido(beneVO.getSegundoApellido());
                      beneSisbenVO.setFechaNacimiento(beneVO.getFechaNacimiento());
                      beneficiarioSisben = (List)beneDAO.findBeneficiarioSisben(beneSisbenVO);
                      if(beneficiarioSisben != null && beneficiarioSisben.size()>0)
                      {
                        encontro = true;
                      }else
                      {
                        beneSisbenVO =  new BeneficiarioVO();
                        beneSisbenVO.setNumeroDocumento(beneVO.getNumeroDocumento());
                        beneSisbenVO.setNombre1(beneVO.getNombre1());
                        beneSisbenVO.setNombre2(beneVO.getNombre2());
                        beneSisbenVO.setPrimerApellido(beneVO.getPrimerApellido());
                        beneSisbenVO.setSegundoApellido(beneVO.getSegundoApellido());
                        beneficiarioSisben = (List)beneDAO.findBeneficiarioSisben(beneSisbenVO);
                        if(beneficiarioSisben != null && beneficiarioSisben.size()>0)
                        {
                          encontro = true;
                        }else
                        {
                          beneSisbenVO =  new BeneficiarioVO();
                          beneSisbenVO.setNumeroDocumento(beneVO.getNumeroDocumento());
                          beneSisbenVO.setNombre1(beneVO.getNombre1());
                          beneSisbenVO.setPrimerApellido(beneVO.getPrimerApellido());
                          beneSisbenVO.setFechaNacimiento(beneVO.getFechaNacimiento());
                          beneficiarioSisben = (List)beneDAO.findBeneficiarioSisben(beneSisbenVO);
                          if(beneficiarioSisben != null && beneficiarioSisben.size()>0)
                          {
                            encontro = true;
                          }else
                          {
                            beneSisbenVO =  new BeneficiarioVO();
                            beneSisbenVO.setNumeroDocumento(beneVO.getNumeroDocumento());
                            beneSisbenVO.setNombre1(beneVO.getNombre1());
                            beneSisbenVO.setPrimerApellido(beneVO.getPrimerApellido());
                            beneficiarioSisben = (List)beneDAO.findBeneficiarioSisben(beneSisbenVO);
                            if(beneficiarioSisben != null && beneficiarioSisben.size()>0)
                            {
                              encontro = true;
                            }else
                            {
                              beneSisbenVO =  new BeneficiarioVO();
                              beneSisbenVO.setNumeroDocumento(beneVO.getNumeroDocumento());
                              beneSisbenVO.setNombre2(beneVO.getNombre2());
                              beneSisbenVO.setSegundoApellido(beneVO.getSegundoApellido());
                              beneSisbenVO.setFechaNacimiento(beneVO.getFechaNacimiento());
                              beneficiarioSisben = (List)beneDAO.findBeneficiarioSisben(beneSisbenVO);
                              if(beneficiarioSisben != null && beneficiarioSisben.size()>0)
                              {
                                encontro = true;
                              }else
                              {
                                beneSisbenVO =  new BeneficiarioVO();
                                beneSisbenVO.setTipoDocumento(beneVO.getTipoDocumento());
                                beneSisbenVO.setNumeroDocumento(beneVO.getNumeroDocumento());
                                beneficiarioSisben = (List)beneDAO.findBeneficiarioSisben(beneSisbenVO);
                                if(beneficiarioSisben != null && beneficiarioSisben.size()>0)
                                {
                                  encontro = true;
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    cf.closeConnection(beneDAO.getConn());
                    if(!encontro)
                    {
                      session.setAttribute("msg","El beneficiario no se encontro en Sisben por lo tanto no se le puede otorgar un beneficio que valide contra Sisben.");
                      return mapping.findForward("verbeneficio");
                    }else
                    {
                      if(beneficiarioSisben.size()==1)
                      {
                          if(subpro != null && subpro.size()>0)
                          {
                            subproVO = (SubProgramaVO)subpro.get(0);
                            
                              List atri = (List)atributos;
                              if(atri != null && atri.size()>0)
                              {
                                AtributoVO atributo = null;
                                beneVO = (BeneficiarioVO)beneficiarioSisben.get(0);
                                for(int i=0;i<atri.size();i++)
                                {
                                  atributo = (AtributoVO)atri.get(i);
                                  
                                  if(atributo.getNombre().equals("NIVEL SISBEN"))
                                  {
                                    request.setAttribute("nivel",beneVO.getNivelSisben());
                                  }
                                  if(atributo.getNombre().equals("PUNTAJE"))
                                  {
                                    request.setAttribute("puntaje",beneVO.getPuntajeSisben());
                                  }
                                }
                              }
                          }
                      } 
                    }
                  }
                  
                }catch(SQLException e)
                {
					System.err.println("/******** TDSUB - cwsub");
					e.printStackTrace();
					System.err.println("TDSSPE - cwsub ********/");
                }
                  //fin interfaz SISBEN
              }
            }
            cf.closeConnection(subproDAO.getConn());
            
            
            
            //inicio interfaz MATRICULA EN LINEA
            
            if(subpro != null && subpro.size()>0)
            {
              subproVO = (SubProgramaVO)subpro.get(0);
              if(subproVO.getValidarEstud().equals("S"))
              {
                  beneVO = new BeneficiarioVO();
                  beneVO.setCode(new Long(strCodigoBeneficiario));
                  BeneficiarioDAO beneDAO;
                  boolean encontro = false;
                  try
                  {
                    beneDAO  = new BeneficiarioDAO(cf);
                    List beneficiario = (List)beneDAO.findBeneficiarioByCriterea(beneVO,"");
                    if(beneficiario != null && beneficiario.size()>0)
                    {
                      beneVO = (BeneficiarioVO)beneficiario.get(0);
                      BeneficiarioVO beneMLVO = new BeneficiarioVO();
                      //empezando a buscar el beneficiario en ML por tipo y numero de documento
                      beneMLVO.setTipoDocumento(beneVO.getTipoDocumento());
                      beneMLVO.setNumeroDocumento(beneVO.getNumeroDocumento());
                      List beneficiarioMEL = (List)beneDAO.findBeneficiarioMEL(beneMLVO);
                      
                      if(beneficiarioMEL != null && beneficiarioMEL.size()>0)
                      {
                        encontro = true;
                        InterfazMELDAO MELDAO = new InterfazMELDAO(cf);
                        List camposMEL = MELDAO.getCamposGenericos(beneVO);
                        if(camposMEL != null && camposMEL.size()>0)
                        {
                          List atri = (List)atributos;
                          if(atri != null && atri.size()>0)
                          {
                            AtributoVO atributo = null;
                            InterfazMELVO MELVO = (InterfazMELVO)camposMEL.get(0);
                            for(int i=0;i<atri.size();i++)
                            {
                              atributo = (AtributoVO)atri.get(i);
                              if(atributo.getNombre().equals("NOMBRE PADRE"))
                              {
                                request.setAttribute("nompadre",MELVO.getNomPadre());
                              }
                              if(atributo.getNombre().equals("CEDULA PADRE"))
                              {
                                request.setAttribute("cedpadre",MELVO.getCedulaPadre());
                              }
                              if(atributo.getNombre().equals("TELEFONO PADRE"))
                              {
                                request.setAttribute("telpadre",MELVO.getTelPadre());
                              }
                              if(atributo.getNombre().equals("NOMBRE MADRE"))
                              {
                                request.setAttribute("nommadre",MELVO.getNomMadre());
                              }
                              if(atributo.getNombre().equals("CEDULA MADRE"))
                              {
                                request.setAttribute("cedmadre",MELVO.getCedulaMadre());
                              }
                              if(atributo.getNombre().equals("TELEFONO MADRE"))
                              {
                                request.setAttribute("telmadre",MELVO.getTelMadre());
                              }
                              if(atributo.getNombre().equals("NOMBRE ACUDIENTE"))
                              {
                                request.setAttribute("nomacu",MELVO.getNomAcu());
                              }
                              if(atributo.getNombre().equals("CEDULA ACUDIENTE"))
                              {
                                request.setAttribute("cedacu",MELVO.getCedulaAcu());
                              }
                              if(atributo.getNombre().equals("TELEFONO ACUDIENTE"))
                              {
                                request.setAttribute("telacu",MELVO.getTelAcu());
                              }
                              if(atributo.getNombre().equals("INSTITUCI�N EDUCATIVA"))
                              {
                                request.setAttribute("nominsti",MELVO.getNomInstitucion());
                              }
                              if(atributo.getNombre().equals("DIRECCI�N INST. EDUCATIVA"))
                              {
                                request.setAttribute("dirinsti",MELVO.getDirInstitucion());
                              }
                              if(atributo.getNombre().equals("TELEFONO INST. EDUCATIVA"))
                              {
                                request.setAttribute("telinsti",MELVO.getTelInstitucion());
                              }
                              if(atributo.getNombre().equals("NOMBRE SEDE"))
                              {
                                request.setAttribute("nomsede",MELVO.getNomSede());
                              }
                              if(atributo.getNombre().equals("DIRECCION SEDE"))
                              {
                                request.setAttribute("dirsede",MELVO.getDirSede());
                              }
                              if(atributo.getNombre().equals("TELEFONO SEDE"))
                              {
                                request.setAttribute("telsede",MELVO.getTelSede());
                              }
                              if(atributo.getNombre().equals("GRADO"))
                              {
                                request.setAttribute("grado",MELVO.getGrado());
                              }
                              if(atributo.getNombre().equals("JORNADA"))
                              {
                                request.setAttribute("jornada",MELVO.getJornada());
                              }
                              if(atributo.getNombre().equals("NUCLEO EDUCATIVO"))
                              {
                                request.setAttribute("nucleo",MELVO.getNucleo());
                              }
                            }
                          }
                        }
                        cf.closeConnection(MELDAO.getConn());
                      }
                    }
                    cf.closeConnection(beneDAO.getConn());
                  }catch(SQLException e)
                  {
					System.err.println("/******** TDSUB - cwsub");
					e.printStackTrace();
					System.err.println("TDSSPE - cwsub ********/");
                  }
        
                  
                  if(!encontro)
                  {
                    session.setAttribute("msg","El beneficiario no se encontro en Matricula en Linea por lo tanto no se le puede otorgar un beneficio que valide contra Matricula en Linea.");
                    return mapping.findForward("verbeneficio");
                  }
              }
            }

            //fin interfaz MATRICULA EN LINEA
            
            
          }catch(SQLException e)
          {
			System.err.println("/******** TDSUB - cwsub");
			e.printStackTrace();
			System.err.println("TDSSPE - cwsub ********/");
          }

      ///////////////FIN INTERFACES///////////////////
      
      // Proceso para calcular la edad
        beneVO =  (BeneficiarioVO)coPropBeneficiario.get(0);
        String strFechaNacimiento = beneVO.getFechaNacimiento();
        if(strFechaNacimiento != null && !strFechaNacimiento.equals(""))
        {
          AtributoVO objAtriVO = new AtributoVO();
          lAtributos = (List)atributos;
          if(atributos!= null && atributos.size()!= 0)
          {
            for(int i=0;i<lAtributos.size();i++)
            {
              objAtriVO = (AtributoVO)lAtributos.get(i);
              if((objAtriVO.getDescripcion()).equals("EDAD"))
              {
                Calendar calendario= Calendar.getInstance();
                String strFechaActual=(calendario.get(Calendar.DAY_OF_MONTH)<10?"0":"")+calendario.get(Calendar.DAY_OF_MONTH)+"/"+
                             ((calendario.get(Calendar.MONTH)+1)<10?"0":"")+(calendario.get(Calendar.MONTH)+1)+"/"+calendario.get(Calendar.YEAR);
                
                String ArrFechaActual[] = strFechaActual.split("/");
                String strDayAc = ArrFechaActual[0];
                String strMonthAc = ArrFechaActual[1];                       
                String strYearAc = ArrFechaActual[2];
                
                String ArrFechaNacimiento[] = ((String)beneVO.getFechaNacimiento()).split("/");
                String strDayNa = ArrFechaNacimiento[0];
                String strMonthNa = ArrFechaNacimiento[1];                       
                String strYearNa = ArrFechaNacimiento[2];
                
                //resto los a�os de las dos fechas 
                 int iEdad = Integer.parseInt(strYearAc) - Integer.parseInt(strYearNa) - 1; //-1 porque no se si ha cumplido a�os ya este a�o
                
                //si resto los meses y me da menor que 0 entonces no ha cumplido a�os. Si da mayor si ha cumplido 
                if (((Integer.parseInt(strMonthAc)) - (Integer.parseInt(strMonthNa))) > 0)
                  iEdad +=1;
                
                if (((Integer.parseInt(strMonthAc)) - (Integer.parseInt(strMonthNa))) == 0)
                {
                  //si resto los dias y me da menor que 0 entonces no ha cumplido a�os. Si da mayor o igual si ha cumplido 
                  if (((Integer.parseInt(strDayAc)) - (Integer.parseInt(strDayNa))) >= 0)
                     iEdad +=1;
                }
                
                request.setAttribute("Edad",String.valueOf(iEdad));
                session.setAttribute("DateBirth",(String)beneVO.getFechaNacimiento());
              }
            }
            
          }
        }
        // Fin del proceso
      
      // proceso que traer el resto de la informacion
       RenovarDAO objRenovar = new RenovarDAO(cf);
       List latributos = (List)objRenovar.GetAtributosSubpro(strCodigoSubpro);
       List lResultados = new LinkedList();
       List lBotSede = (List)objRenovar.GetBeneficioOtorgado(strCodigoSubpro,strCodigoBeneficiario);
       session.setAttribute("codesede",(String)lBotSede.get(1));
       for(int i=0;i<latributos.size();i++)
       {
         AtributoVO atrivo = new AtributoVO();
         atrivo = (AtributoVO)latributos.get(i);
         if(atrivo.getTipoatributo().equals("R"))
         {
           String strValor = objRenovar.Getbeneficiarioatri(atrivo.getTipodato(),strCodigoBeneficiario,atrivo.getCodatributo());
           RenovarVO renovarvo = new RenovarVO();
           if(strValor != null && !strValor.equals(""))
           {
             renovarvo.setNombre(atrivo.getNombre());
             renovarvo.setValor(strValor);
             renovarvo.setTipoatributo(atrivo.getTipoatributo());
             lResultados.add(renovarvo);
             renovarvo = null;
           }else
           {
             renovarvo.setNombre(atrivo.getNombre());
             renovarvo.setValor("");
             renovarvo.setTipoatributo(atrivo.getTipoatributo());
             lResultados.add(renovarvo);
             renovarvo = null;
           }
         }else
         {
           if(lBotSede.size() > 0)
           {
             String strBeneOtor = (String)lBotSede.get(0);
             ResultSet rst = objRenovar.Getbeneficioatri(atrivo.getTipodato(),strBeneOtor,atrivo.getCodatributo());
             RenovarVO renovarvo = new RenovarVO();
             if(rst.next())
             {
               renovarvo.setNombre(atrivo.getNombre());
               renovarvo.setValor(rst.getString("valor"));
               renovarvo.setTipoatributo(atrivo.getTipoatributo());
               lResultados.add(renovarvo);
               renovarvo = null;
             }else
             {
               renovarvo.setNombre(atrivo.getNombre());
               renovarvo.setValor("");
               renovarvo.setTipoatributo(atrivo.getTipoatributo());
               lResultados.add(renovarvo);
               renovarvo = null;
             }
           }
        }
       }
       session.setAttribute("listaresultados",lResultados);
      //fin del proceso
      
      // Proceso para obtener el valor del beneficio
      String strCostBene = null;
      BeneficioDAO objBeneDAO = new BeneficioDAO(cf);
      strCostBene = objBeneDAO.getCostBenefit(strCodigoSubpro);
      cf.closeConnection(objBeneDAO.getConn());
      if(strCostBene != null)
      {
        request.setAttribute("CostBene", strCostBene);
      }
      // Fin del proceso
      // Proceso para obtener la fecha del sistema
      SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
      String strDate = dateFormat2.format(c.getTime());
      request.setAttribute("DateBene", strDate);
      // Fin del proceso
      }catch(SQLException e){
		System.err.println("/******** TDSUB - cwsub");
		e.printStackTrace();
		System.err.println("TDSSPE - cwsub ********/");
      }

      return mapping.findForward("success");
    }else
    {
      session.setAttribute("msg1","El beneficio ya se le dio a un miembro del grupo familiar");
      return mapping.findForward("verbeneficio");
    }
  }
}